Remove handle_box from App demo.
authorJonathan Blandford <jrb@redhat.com>
Mon, 22 Oct 2001 18:24:29 +0000 (18:24 +0000)
committerJonathan Blandford <jrb@src.gnome.org>
Mon, 22 Oct 2001 18:24:29 +0000 (18:24 +0000)
Mon Oct 22 14:08:26 2001  Jonathan Blandford  <jrb@redhat.com>

* demos/gtk-demo/appwindow.c: Remove handle_box from App demo.

* gtk/gtktreeview.c (size_allocate): Move to a different drawing
system.  Instead of having a window the size of the tree, we have
a window the size of widget->allocation, and simply draw with the
offset.
(coords_are_over_arrow): ditto.  Move to window coordinates.
(do_prelight): ditto
(do_unprelight): ditto

* gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
Minor fix from Kristian Rietveld to fix unsorted case.

26 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
demos/gtk-demo/appwindow.c
docs/reference/ChangeLog
docs/reference/gdk/tmpl/gdk-unused.sgml
docs/reference/gdk/tmpl/properties.sgml
docs/reference/gdk/tmpl/selections.sgml
docs/reference/gdk/tmpl/visuals.sgml
docs/reference/gdk/tmpl/x_interaction.sgml
docs/reference/gtk/gtk-docs.sgml
docs/reference/gtk/tmpl/gtk-unused.sgml
docs/reference/gtk/tmpl/gtkcelleditable.sgml [new file with mode: 0644]
docs/reference/gtk/tmpl/gtkdnd.sgml
docs/reference/gtk/tmpl/gtkscrolledwindow.sgml
docs/reference/gtk/tmpl/gtktreemodelsort.sgml
docs/reference/gtk/tmpl/gtktreesortable.sgml [new file with mode: 0644]
gdk/x11/gdkgeometry-x11.c
gtk/gtktreemodelsort.c
gtk/gtktreeprivate.h
gtk/gtktreeview.c
tests/testtreesort.c

index 6dada401aebbb522bb9c0bab10d23bd27a516866..5a8453797ca8ea947efcea22c2a2c9b7d2db21f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+       * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+       system.  Instead of having a window the size of the tree, we have
+       a window the size of widget->allocation, and simply draw with the
+       offset.
+       (coords_are_over_arrow): ditto.  Move to window coordinates.
+       (do_prelight): ditto
+       (do_unprelight): ditto
+
+       * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+       Minor fix from Kristian Rietveld to fix unsorted case.
+
 2001-10-22  jacob berkman  <jacob@ximian.com>
 
        * gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
index 6dada401aebbb522bb9c0bab10d23bd27a516866..5a8453797ca8ea947efcea22c2a2c9b7d2db21f8 100644 (file)
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+       * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+       system.  Instead of having a window the size of the tree, we have
+       a window the size of widget->allocation, and simply draw with the
+       offset.
+       (coords_are_over_arrow): ditto.  Move to window coordinates.
+       (do_prelight): ditto
+       (do_unprelight): ditto
+
+       * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+       Minor fix from Kristian Rietveld to fix unsorted case.
+
 2001-10-22  jacob berkman  <jacob@ximian.com>
 
        * gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
index 6dada401aebbb522bb9c0bab10d23bd27a516866..5a8453797ca8ea947efcea22c2a2c9b7d2db21f8 100644 (file)
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+       * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+       system.  Instead of having a window the size of the tree, we have
+       a window the size of widget->allocation, and simply draw with the
+       offset.
+       (coords_are_over_arrow): ditto.  Move to window coordinates.
+       (do_prelight): ditto
+       (do_unprelight): ditto
+
+       * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+       Minor fix from Kristian Rietveld to fix unsorted case.
+
 2001-10-22  jacob berkman  <jacob@ximian.com>
 
        * gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
index 6dada401aebbb522bb9c0bab10d23bd27a516866..5a8453797ca8ea947efcea22c2a2c9b7d2db21f8 100644 (file)
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+       * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+       system.  Instead of having a window the size of the tree, we have
+       a window the size of widget->allocation, and simply draw with the
+       offset.
+       (coords_are_over_arrow): ditto.  Move to window coordinates.
+       (do_prelight): ditto
+       (do_unprelight): ditto
+
+       * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+       Minor fix from Kristian Rietveld to fix unsorted case.
+
 2001-10-22  jacob berkman  <jacob@ximian.com>
 
        * gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
index 6dada401aebbb522bb9c0bab10d23bd27a516866..5a8453797ca8ea947efcea22c2a2c9b7d2db21f8 100644 (file)
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+       * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+       system.  Instead of having a window the size of the tree, we have
+       a window the size of widget->allocation, and simply draw with the
+       offset.
+       (coords_are_over_arrow): ditto.  Move to window coordinates.
+       (do_prelight): ditto
+       (do_unprelight): ditto
+
+       * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+       Minor fix from Kristian Rietveld to fix unsorted case.
+
 2001-10-22  jacob berkman  <jacob@ximian.com>
 
        * gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
index 6dada401aebbb522bb9c0bab10d23bd27a516866..5a8453797ca8ea947efcea22c2a2c9b7d2db21f8 100644 (file)
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+       * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+       system.  Instead of having a window the size of the tree, we have
+       a window the size of widget->allocation, and simply draw with the
+       offset.
+       (coords_are_over_arrow): ditto.  Move to window coordinates.
+       (do_prelight): ditto
+       (do_unprelight): ditto
+
+       * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+       Minor fix from Kristian Rietveld to fix unsorted case.
+
 2001-10-22  jacob berkman  <jacob@ximian.com>
 
        * gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
index 6dada401aebbb522bb9c0bab10d23bd27a516866..5a8453797ca8ea947efcea22c2a2c9b7d2db21f8 100644 (file)
@@ -1,3 +1,18 @@
+Mon Oct 22 14:08:26 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
+
+       * gtk/gtktreeview.c (size_allocate): Move to a different drawing
+       system.  Instead of having a window the size of the tree, we have
+       a window the size of widget->allocation, and simply draw with the
+       offset.
+       (coords_are_over_arrow): ditto.  Move to window coordinates.
+       (do_prelight): ditto
+       (do_unprelight): ditto
+
+       * gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
+       Minor fix from Kristian Rietveld to fix unsorted case.
+
 2001-10-22  jacob berkman  <jacob@ximian.com>
 
        * gtk/gtkclist.c (cell_size_request): don't cast a PIXTEXT cell to
index 1b5df07500ee944a2141248f77db3f358d2ff7d7..89b517c07f6448fc61112b3975bd5d976810aab0 100644 (file)
@@ -181,8 +181,6 @@ do_appwindow (void)
   if (!window)
     {
       GtkWidget *table;
-      GtkWidget *menubar_handle;
-      GtkWidget *toolbar_handle;
       GtkWidget *toolbar;
       GtkWidget *statusbar;
       GtkWidget *contents;
@@ -215,8 +213,6 @@ do_appwindow (void)
       gtk_accel_group_attach (accel_group, G_OBJECT (window));
       gtk_accel_group_unref (accel_group);
       
-      menubar_handle = gtk_handle_box_new ();
-
       item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>", accel_group);
 
       /* Set up item factory to go away with the window */
@@ -231,11 +227,8 @@ do_appwindow (void)
       gtk_item_factory_create_items (item_factory, G_N_ELEMENTS (menu_items),
                                      menu_items, window);
 
-      gtk_container_add (GTK_CONTAINER (menubar_handle),
-                        gtk_item_factory_get_widget (item_factory, "<main>"));
-      
       gtk_table_attach (GTK_TABLE (table),
-                       menubar_handle,
+                       gtk_item_factory_get_widget (item_factory, "<main>"),
                         /* X direction */          /* Y direction */
                         0, 1,                      0, 1,
                         GTK_EXPAND | GTK_FILL,     0,
@@ -243,8 +236,6 @@ do_appwindow (void)
 
       /* Create the toolbar
        */
-      toolbar_handle = gtk_handle_box_new ();
-
       toolbar = gtk_toolbar_new ();
 
       gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
@@ -273,10 +264,8 @@ do_appwindow (void)
                                 window, /* user data for callback */
                                 -1);  /* -1 means "append" */
 
-      gtk_container_add (GTK_CONTAINER (toolbar_handle), toolbar);
-
       gtk_table_attach (GTK_TABLE (table),
-                        toolbar_handle,
+                        toolbar,
                         /* X direction */       /* Y direction */
                         0, 1,                   1, 2,
                         GTK_EXPAND | GTK_FILL,  0,
index e77e8ee37fbb602f5fe4b6c2c3d454bc437f4ffd..c1d102cab01b21b71057a8cd479189637d6eb04b 100644 (file)
@@ -1,3 +1,7 @@
+Thu Oct 18 16:40:00 2001  Jonathan Blandford  <jrb@redhat.com>
+
+       * gtk/gtk-docs.sgml: add GtkCellEditable and GtkTreeModelSort.
+
 Sat Oct 20 18:35:21 2001  Owen Taylor  <otaylor@redhat.com>
 
        * gtk/tmpl/gtkentry.sgml (Note): Remove note about
index 7311ec15d3061d139b2c36d519676015cb5b82eb..3f1d09e2318524cfc3f7266dec33e2ee29c6e25f 100644 (file)
@@ -165,6 +165,13 @@ the device ID for the core pointer device.
 </para>
 
 
+<!-- ##### TYPEDEF GdkAtom ##### -->
+<para>
+A numeric type representing a string as an index into a table
+of strings on the X server.
+</para>
+
+
 <!-- ##### STRUCT GdkColorContext ##### -->
 <para>
 
index d2bbbc0d99da6c5f347a0637bf0a9e1250d1b60f..370175cf6ba2f4dcfcfe5c79ba4b0acfc6a324b4 100644 (file)
@@ -42,13 +42,6 @@ data commonly stored in X window properties.
 
 </para>
 
-<!-- ##### TYPEDEF GdkAtom ##### -->
-<para>
-A numeric type representing a string as an index into a table
-of strings on the X server.
-</para>
-
-
 <!-- ##### MACRO GDK_NONE ##### -->
 <para>
 A null value for #GdkAtom, used in a similar way as <literal>None</literal>
index fbcde204a6f761c57c3ba99e3d3217e6eb6af4af..efc8ca1f9d8df964661d1628c669edc1c037290b 100644 (file)
@@ -47,19 +47,14 @@ to the X Inter-client Communication Conventions Manual
 
 </para>
 
-<!-- ##### ENUM GdkSelection ##### -->
+<!-- ##### TYPEDEF GdkSelection ##### -->
 <para>
 The #GdkSelection enumeration contains predefined 
 atom values for several common selections.
 </para>
 
-@GDK_SELECTION_PRIMARY: The primary X selection. Programs
-typically claim this selection when the user
-selects text and paste its contents in response
-to a middle button press.
-@GDK_SELECTION_SECONDARY: An additional X selection.
 
-<!-- ##### ENUM GdkSelectionType ##### -->
+<!-- ##### TYPEDEF GdkSelectionType ##### -->
 <para>
 The #GdkSelectionType enumeration contains predefined
 atom values used to represent the types of data transferred
@@ -71,18 +66,8 @@ types for this purpose. However, supporting these types
 may be useful for compatibility with older programs.
 </para>
 
-@GDK_SELECTION_TYPE_ATOM: An atom. (format 32)
-@GDK_SELECTION_TYPE_BITMAP: A bitmap ID. (format 32)
-@GDK_SELECTION_TYPE_COLORMAP: A colormap ID. (format 32)
-@GDK_SELECTION_TYPE_DRAWABLE: A drawable ID. (format 32)
-@GDK_SELECTION_TYPE_INTEGER: An integer. (format 32)
-@GDK_SELECTION_TYPE_PIXMAP: A pixmap ID. (format 32)
-@GDK_SELECTION_TYPE_WINDOW: A window ID. (format 32)
-@GDK_SELECTION_TYPE_STRING: A string encoded
-    in ISO Latin-1. (With the additional of <symbol>TAB</symbol>
-     and <symbol>NEWLINE</symbol>.) (format 8)
-
-<!-- ##### ENUM GdkTarget ##### -->
+
+<!-- ##### TYPEDEF GdkTarget ##### -->
 <para>
 The #GdkTarget enumeration contains predefined atom values which are
 used to describe possible targets for a selection. Other atoms can be
@@ -91,13 +76,6 @@ for this purpose. However, supporting these types may be useful for
 compatibility with older programs.
 </para>
 
-@GDK_TARGET_BITMAP: A bitmap ID.
-@GDK_TARGET_COLORMAP: A colormap ID.
-@GDK_TARGET_DRAWABLE: A drawable ID.
-@GDK_TARGET_PIXMAP: A pixmap ID.
-@GDK_TARGET_STRING: A string encoded in ISO Latin-1. 
-     (With the additional of <symbol>TAB</symbol>
-       and <symbol>NEWLINE</symbol>.)
 
 <!-- ##### FUNCTION gdk_selection_owner_set ##### -->
 <para>
index 559c0158216a9915ba453b512e66985dead77a0c..028c1ec211176e1e59643e3526478fc46377e076 100644 (file)
@@ -72,7 +72,7 @@ pixel_from_rgb (GdkVisual *visual,
 </figure>
 
 @parent_instance: inherited portion from #GObject
-@type: The type of this visual. 
+@type: The type of this visual.
 @depth: The number of bits per pixel.
 @byte_order: The byte-order for this visual.
 @colormap_size: The number of entries in the colormap, for
@@ -109,7 +109,6 @@ pixel_from_rgb (GdkVisual *visual,
     of the information in <structfield>blue_mask</structfield>.
 @blue_prec: See above.
 
-
 <!-- ##### ENUM GdkVisualType ##### -->
 <para>
 A set of values that describe the manner in which the
@@ -131,7 +130,7 @@ values for display.
    structure describe how the components are assembled into a pixel value.
 @GDK_VISUAL_DIRECT_COLOR: Each pixel value contains red, green, and blue
    components as for %GDK_TRUE_COLOR, but the components are mapped via a 
-   color table into the final output table instead of being converted directly. 
+   color table into the final output table instead of being converted directly.
 
 <!-- ##### ENUM GdkByteOrder ##### -->
 <para>
@@ -141,7 +140,7 @@ for storing pixel values in memory.
 
 @GDK_LSB_FIRST: The values are stored with the least-significant byte
   first. For instance, the 32-bit value 0xffeecc would be stored
-  in memory as 0xcc, 0xee, 0xff, 0x00. 
+  in memory as 0xcc, 0xee, 0xff, 0x00.
 @GDK_MSB_FIRST: The values are stored with the most-significant byte
 first. For instance, the 32-bit value 0xffeecc would be stored
 in memory as 0x00, 0xcc, 0xee, 0xff.
@@ -151,7 +150,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
 
 </para>
 
-@depths:
+@depths: 
 @count: 
 
 
@@ -161,7 +160,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
 </para>
 
 @visual_types: 
-@count:
+@count: 
 
 
 <!-- ##### FUNCTION gdk_list_visuals ##### -->
@@ -169,7 +168,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
 
 </para>
 
-@Returns:
+@Returns: 
 
 
 <!-- ##### FUNCTION gdk_visual_get_best_depth ##### -->
@@ -177,7 +176,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
 
 </para>
 
-@Returns:
+@Returns: 
 
 
 <!-- ##### FUNCTION gdk_visual_get_best_type ##### -->
@@ -193,7 +192,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
 
 </para>
 
-@Returns:
+@Returns: 
 
 
 <!-- ##### FUNCTION gdk_visual_get_best ##### -->
@@ -201,7 +200,7 @@ in memory as 0x00, 0xcc, 0xee, 0xff.
 
 </para>
 
-@Returns:
+@Returns: 
 
 
 <!-- ##### FUNCTION gdk_visual_get_best_with_depth ##### -->
index 9ac4d7f3f535626cd3a1de6b3ca486aa1fa6b122..36a4b64f0d14315145cd86d3656698284ee6bafe 100644 (file)
@@ -20,12 +20,14 @@ Obtains the Xlib window id of the root window of the current screen.
 </para>
 
 
+
 <!-- ##### MACRO GDK_ROOT_PARENT ##### -->
 <para>
 Obtains the Xlib window id of the root window of the default screen.
 </para>
 
 
+
 <!-- ##### MACRO GDK_DISPLAY ##### -->
 <para>
 The current display.
@@ -48,7 +50,7 @@ Returns the display of a #GdkWindow.
 Returns the X window belonging to a #GdkWindow.
 </para>
 
-@win: a #GdkWindow. 
+@win: a #GdkWindow.
 @Returns: the Xlib <type>Window</type> of @win.
 
 
@@ -75,7 +77,7 @@ Returns the X pixmap belonging to a #GdkPixmap.
 Returns the display of a #GdkDrawable.
 </para>
 
-@win: a #GdkDrawable. 
+@win: a #GdkDrawable.
 @Returns: an Xlib <type>Display*</type>.
 
 
@@ -84,8 +86,8 @@ Returns the display of a #GdkDrawable.
 Returns the X resource (window or pixmap) belonging to a #GdkDrawable.
 </para>
 
-@win: a #GdkDrawable. 
-@Returns: the ID of @win's X resource. 
+@win: a #GdkDrawable.
+@Returns: the ID of @win's X resource.
 
 
 <!-- ##### MACRO GDK_IMAGE_XDISPLAY ##### -->
@@ -111,7 +113,7 @@ Returns the X image belonging to a #GdkImage.
 Returns the display of a #GdkGC.
 </para>
 
-@gc: a #GdkGC. 
+@gc: a #GdkGC.
 @Returns: an Xlib <type>Display*</type>.
 
 
@@ -120,7 +122,7 @@ Returns the display of a #GdkGC.
 Returns the display of a #GdkColormap.
 </para>
 
-@cmap: a #GdkColormap. 
+@cmap: a #GdkColormap.
 @Returns: an Xlib <type>Display*</type>.
 
 
@@ -129,7 +131,7 @@ Returns the display of a #GdkColormap.
 Returns the X colormap belonging to a #GdkColormap.
 </para>
 
-@cmap: a #GdkColormap. 
+@cmap: a #GdkColormap.
 @Returns: an Xlib <type>Colormap</type>.
 
 
@@ -166,7 +168,7 @@ Returns the X cursor belonging to a #GdkCursor.
 </para>
 
 @cursor: a #GdkCursor.
-@Returns: an Xlib <type>Cursor</type. 
+@Returns: an Xlib <type>Cursor</type.
 
 
 <!-- ##### MACRO GDK_CURSOR_XDISPLAY ##### -->
@@ -213,8 +215,8 @@ Another name for GDK_DRAWABLE_XID().
 Returns a #GdkVisual corresponding to a X visual.
 </para>
 
-@xvisualid: a X visual id. 
-@Returns: the #GdkVisual. 
+@xvisualid: a X visual id.
+@Returns: the #GdkVisual.
 
 
 <!-- ##### FUNCTION gdkx_colormap_get ##### -->
@@ -254,21 +256,27 @@ Returns the Gdk object associated with the given X id.
 a #GdkWindow or a #GdkFont.
 
 
-<!-- ##### MACRO gdk_window_lookup ##### -->
+<!-- ##### FUNCTION gdk_window_lookup ##### -->
 <para>
 Obtains the #GdkWindow for the given Xlib window ID, or %NULL if no #GdkWindow has
 been created for @xid.
 </para>
 
+@anid: 
+@Returns: 
+<!-- # Unused Parameters # -->
 @xid: Xlib window ID
 
 
-<!-- ##### MACRO gdk_pixmap_lookup ##### -->
+<!-- ##### FUNCTION gdk_pixmap_lookup ##### -->
 <para>
 Obtains the #GdkPixmap for the given Xlib pixmap ID, or %NULL if no #GdkPixmap has
 been created for @xid.
 </para>
 
+@anid: 
+@Returns: 
+<!-- # Unused Parameters # -->
 @xid: Xlib pixmap ID
 
 
@@ -323,6 +331,8 @@ Returns the X cursor belonging to a #GdkCursor.
 </para>
 
 @cursor: a #GdkCursor.
+@Returns: 
+<!-- # Unused Parameters # -->
 @Retursn: an Xlib <type>Cursor</type.
 
 
@@ -385,7 +395,7 @@ Returns the X font belonging to a #GdkFont.
 Returns the display of a #GdkGC.
 </para>
 
-@gc: a #GdkGC. 
+@gc: a #GdkGC.
 @Returns: an Xlib <type>Display*</type>.
 
 
@@ -435,13 +445,16 @@ gdk_x11_grab_server()/gdk_x11_ungrab_server() calls can be nested.
 </para>
 
 
+
 <!-- ##### FUNCTION gdk_x11_image_get_xdisplay ##### -->
 <para>
 Returns the display of a #GdkImage.
 </para>
 
-@drawable: a #GdkImage.
+@image: 
 @Returns: an Xlib <type>Display*</type>.
+<!-- # Unused Parameters # -->
+@drawable: a #GdkImage.
 
 
 <!-- ##### FUNCTION gdk_x11_image_get_ximage ##### -->
index e03dec6ff01a470625d5a8791409d027c2314b31..fd0c2acdb8c3c0aa289fd3e01c05e066610d3789 100644 (file)
 <!entity GtkTree SYSTEM "sgml/gtktree.sgml">
 <!entity GtkTreeItem SYSTEM "sgml/gtktreeitem.sgml">
 <!entity gtk-GtkTreeModel SYSTEM "sgml/gtktreemodel.sgml">
+<!entity gtk-GtkTreeSortable SYSTEM "sgml/gtktreesortable.sgml">
 <!entity gtk-GtkTreeModelSort SYSTEM "sgml/gtktreemodelsort.sgml">
 <!entity gtk-GtkTreeSelection SYSTEM "sgml/gtktreeselection.sgml">
 <!entity gtk-GtkTreeStore SYSTEM "sgml/gtktreestore.sgml">
 <!entity gtk-GtkTreeViewColumn SYSTEM "sgml/gtktreeviewcolumn.sgml">
 <!entity gtk-GtkTreeView SYSTEM "sgml/gtktreeview.sgml">
 <!entity gtk-GtkCellRenderer SYSTEM "sgml/gtkcellrenderer.sgml">
+<!entity gtk-GtkCellEditable SYSTEM "sgml/gtkcelleditable.sgml">
 <!entity gtk-GtkCellRendererPixbuf SYSTEM "sgml/gtkcellrendererpixbuf.sgml">
 <!entity gtk-GtkCellRendererText SYSTEM "sgml/gtkcellrenderertext.sgml">
 <!entity gtk-GtkCellRendererToggle SYSTEM "sgml/gtkcellrenderertoggle.sgml">
@@ -324,16 +326,18 @@ that is, GUI components such as #GtkButton or #GtkTextView.
         &gtk-TreeWidget;
         &gtk-GtkTreeModel;
         &gtk-GtkTreeSelection;
-        &gtk-GtkTreeStore;
         &gtk-GtkTreeViewColumn;
         &gtk-GtkTreeView;
         &gtk-GtkTreeDND;
+       &gtk-GtkTreeSortable;
         &gtk-GtkTreeModelSort;
         &gtk-GtkCellRenderer;
+        &gtk-GtkCellEditable;
         &gtk-GtkCellRendererPixbuf;
         &gtk-GtkCellRendererText;
         &gtk-GtkCellRendererToggle;
         &gtk-GtkListStore;
+        &gtk-GtkTreeStore;
     </sect1>
     <sect1 id="MenusAndCombos">
       <title>Menus, Combo Box, Toolbar</title>
index 53236811d614a0cf2893af91a9ecad760c615ebd..7a138598492df70716b0dc59fac51683bbfc828b 100644 (file)
@@ -101,10 +101,6 @@ Debugging
 gtkenums.sgml
 
 
-<!-- ##### SECTION ./tmpl/gtkimcontextsimple.sgml:Title ##### -->
-GtkIMContextSimple
-
-
 <!-- ##### SECTION ./tmpl/gtkmarshal.sgml:Long_Description ##### -->
 <refsect2>
 <title>What are Signal Marshallers?</title>
@@ -789,17 +785,6 @@ the #GtkAdjustment which sets the range of the scale.
 </para>
 
 
-<!-- ##### STRUCT GtkIMContextSimple ##### -->
-<para>
-
-</para>
-
-@object: 
-@tables: 
-@compose_buffer: 
-@tentative_match: 
-@tentative_match_len: 
-
 <!-- ##### USER_FUNCTION GtkImageLoader ##### -->
 <para>
 A GtkImageLoader is used to load a filename found in
@@ -2523,6 +2508,32 @@ a gtk_object_unref().
 @tree_model: 
 @iter: 
 
+<!-- ##### FUNCTION gtk_tree_model_sort_convert_iter ##### -->
+<para>
+
+</para>
+
+@tree_model_sort: 
+@sort_iter: 
+@child_iter: 
+
+<!-- ##### FUNCTION gtk_tree_model_sort_convert_path ##### -->
+<para>
+
+</para>
+
+@tree_model_sort: 
+@child_path: 
+@Returns: 
+@path: 
+
+<!-- ##### FUNCTION gtk_tree_model_sort_new ##### -->
+<para>
+
+</para>
+
+@Returns: 
+
 <!-- ##### FUNCTION gtk_tree_model_sort_set_compare ##### -->
 <para>
 
@@ -2531,6 +2542,15 @@ a gtk_object_unref().
 @tree_model_sort: 
 @func: 
 
+<!-- ##### FUNCTION gtk_tree_model_sort_set_model ##### -->
+<para>
+
+</para>
+
+@tree_model_sort: 
+@child_model: 
+@model: 
+
 <!-- ##### FUNCTION gtk_tree_model_sort_set_sort_column ##### -->
 <para>
 
diff --git a/docs/reference/gtk/tmpl/gtkcelleditable.sgml b/docs/reference/gtk/tmpl/gtkcelleditable.sgml
new file mode 100644 (file)
index 0000000..b15e633
--- /dev/null
@@ -0,0 +1,57 @@
+<!-- ##### SECTION Title ##### -->
+gtkcelleditable
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GtkCellEditable ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GtkCellEditableIface ##### -->
+<para>
+
+</para>
+
+@g_iface: 
+@editing_done: 
+@remove_widget: 
+@start_editing: 
+
+<!-- ##### FUNCTION gtk_cell_editable_start_editing ##### -->
+<para>
+
+</para>
+
+@cell_editable: 
+@event: 
+
+
+<!-- ##### FUNCTION gtk_cell_editable_editing_done ##### -->
+<para>
+
+</para>
+
+@cell_editable: 
+
+
+<!-- ##### FUNCTION gtk_cell_editable_remove_widget ##### -->
+<para>
+
+</para>
+
+@cell_editable: 
+
+
index 5d860b9fe719e7f3da0f9ceca318845298020ad6..281e88870abfa915a52fd5be693501db223bcde1 100644 (file)
@@ -258,7 +258,7 @@ gtk_drag_source_set() is used.
           drag.
 @button: The button the user clicked to start the drag.
 @event: The event that triggered the start of the
-        drag. 
+        drag.
 @Returns: The context for this drag.
 
 
index f7093de2cd000a6f0b0f505378428dafa0f07232..62de378149a46857746c9f3889af0270b83bad3d 100644 (file)
@@ -192,6 +192,8 @@ Sets the #GtkAdjustment for the vertical scrollbar.
 </para>
 
 @scrolled_window: A #GtkScrolledWindow.
+@hadjustment: 
+<!-- # Unused Parameters # -->
 @vadjustment: Vertical scroll adjustment.
 
 
index d8a3fd421ae49bf1a490ce6879cc4fa017f0130d..8cc1233dc2dcb3cb3f83265d0b5a5823cc1ee7d2 100644 (file)
@@ -14,14 +14,6 @@ GtkTreeModelSort
 
 </para>
 
-<!-- ##### FUNCTION gtk_tree_model_sort_new ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-
 <!-- ##### FUNCTION gtk_tree_model_sort_new_with_model ##### -->
 <para>
 
@@ -35,17 +27,6 @@ GtkTreeModelSort
 @model: 
 
 
-<!-- ##### FUNCTION gtk_tree_model_sort_set_model ##### -->
-<para>
-
-</para>
-
-@tree_model_sort: 
-@child_model: 
-<!-- # Unused Parameters # -->
-@model: 
-
-
 <!-- ##### FUNCTION gtk_tree_model_sort_get_model ##### -->
 <para>
 
@@ -55,25 +36,3 @@ GtkTreeModelSort
 @Returns: 
 
 
-<!-- ##### FUNCTION gtk_tree_model_sort_convert_path ##### -->
-<para>
-
-</para>
-
-@tree_model_sort: 
-@child_path: 
-@Returns: 
-<!-- # Unused Parameters # -->
-@path: 
-
-
-<!-- ##### FUNCTION gtk_tree_model_sort_convert_iter ##### -->
-<para>
-
-</para>
-
-@tree_model_sort: 
-@sort_iter: 
-@child_iter: 
-
-
diff --git a/docs/reference/gtk/tmpl/gtktreesortable.sgml b/docs/reference/gtk/tmpl/gtktreesortable.sgml
new file mode 100644 (file)
index 0000000..4bb1c35
--- /dev/null
@@ -0,0 +1,108 @@
+<!-- ##### SECTION Title ##### -->
+gtktreesortable
+
+<!-- ##### SECTION Short_Description ##### -->
+
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+
+</para>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+<!-- ##### STRUCT GtkTreeSortable ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### STRUCT GtkTreeSortableIface ##### -->
+<para>
+
+</para>
+
+@g_iface: 
+@sort_column_changed: 
+@get_sort_column_id: 
+@set_sort_column_id: 
+@set_sort_func: 
+@set_default_sort_func: 
+@has_default_sort_func: 
+
+<!-- ##### USER_FUNCTION GtkTreeIterCompareFunc ##### -->
+<para>
+
+</para>
+
+@model: 
+@a: 
+@b: 
+@user_data: 
+@Returns: 
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_sort_column_changed ##### -->
+<para>
+
+</para>
+
+@sortable: 
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_get_sort_column_id ##### -->
+<para>
+
+</para>
+
+@sortable: 
+@sort_column_id: 
+@order: 
+@Returns: 
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_set_sort_column_id ##### -->
+<para>
+
+</para>
+
+@sortable: 
+@sort_column_id: 
+@order: 
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_set_sort_func ##### -->
+<para>
+
+</para>
+
+@sortable: 
+@sort_column_id: 
+@sort_func: 
+@user_data: 
+@destroy: 
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_set_default_sort_func ##### -->
+<para>
+
+</para>
+
+@sortable: 
+@sort_func: 
+@user_data: 
+@destroy: 
+
+
+<!-- ##### FUNCTION gtk_tree_sortable_has_default_sort_func ##### -->
+<para>
+
+</para>
+
+@sortable: 
+@Returns: 
+
+
index 28e10fc5674f5d4ec87642a4b943d693d93909f8..64fc00f03a2089e93da0fef16842215a099d956e 100644 (file)
@@ -116,15 +116,14 @@ _gdk_window_init_position (GdkWindow *window)
  * @dx: Amount to scroll in the X direction
  * @dy: Amount to scroll in the Y direction
  * 
- * Scroll the contents of its window, both pixels and children, by
- * the given amount. Portions of the window that the scroll operation
- * brings in from offscreen areas are invalidated. The invalidated
- * region may be bigger than what would strictly be necessary.
- * (For X11, a minimum area will be invalidated if the window has
- * no subwindows, or if the edges of the window's parent do not extend
- * beyond the edges of the window. In other cases, a multi-step process
- * is used to scroll the window which may produce temporary visual
- * artifacts and unnecessary invalidations.)
+ * Scroll the contents of @window, both pixels and children, by the given
+ * amount. @window itself does not move.  Portions of the window that the scroll
+ * operation brings in from offscreen areas are invalidated. The invalidated
+ * region may be bigger than what would strictly be necessary.  (For X11, a
+ * minimum area will be invalidated if the window has no subwindows, or if the
+ * edges of the window's parent do not extend beyond the edges of the window. In
+ * other cases, a multi-step process is used to scroll the window which may
+ * produce temporary visual artifacts and unnecessary invalidations.)
  **/
 void
 gdk_window_scroll (GdkWindow *window,
index 8f9e820316e1fb1738eb3a8b9821aa4b2cf48515..ab02c2709aaf606defa84524bc31fdca498d6345 100644 (file)
@@ -731,7 +731,15 @@ gtk_tree_model_sort_rows_reordered (GtkTreeModel *s_model,
        }
 
       for (i = 0; i < level->array->len; i++)
-       g_array_index (level->array, SortElt, i).offset = new_order[i];
+       {
+         g_array_index (level->array, SortElt, i).offset = new_order[i];
+         
+         if (GTK_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
+           {
+             get_child_iter_from_elt_no_cache (tree_model_sort,
+                                               &(g_array_index (level->array, SortElt, i).iter), level, &g_array_index (level->array, SortElt, i));
+           }
+       }
       
       gtk_tree_model_sort_increment_stamp (tree_model_sort);
       
index 5ffedf56e2b77d66a6303df5af1b7e38923580df..e6aae56b33b20d318c84d4fc2cdac19bde5c5d9d 100644 (file)
@@ -102,6 +102,9 @@ struct _GtkTreeViewPrivate
   GdkWindow *drag_window;
   GdkWindow *drag_highlight_window;
   GtkTreeViewColumn *drag_column;
+
+  /* bin_window offset */
+  gint dy;
   gint drag_column_x;
 
   GtkTreeViewColumn *expander_column;
index 7add0e79fc043a266f18bca0c38426e8406bc030..c562625110131142dfdf2f934a879542f6262c24 100644 (file)
  * The "cell" areas are the cell_area passed in to gtk_cell_renderer_render(),
  * i.e. just the cells, no spacing.
  */
-#define BACKGROUND_FIRST_PIXEL(tree_view,tree,node) (_gtk_rbtree_node_find_offset ((tree), (node)) + TREE_VIEW_HEADER_HEIGHT ((tree_view)))
-#define CELL_FIRST_PIXEL(tree_view,tree,node,separator) (BACKGROUND_FIRST_PIXEL (tree_view,tree,node) + separator/2)
 
 #define BACKGROUND_HEIGHT(node) (GTK_RBNODE_GET_HEIGHT (node))
 #define CELL_HEIGHT(node, separator) (BACKGROUND_HEIGHT (node) - separator);
 
-#define TREE_WINDOW_Y_TO_RBTREE_Y(tree_view,y) ((y) - TREE_VIEW_HEADER_HEIGHT (tree_view))
-#define RBTREE_Y_TO_TREE_WINDOW_Y(tree_view,y) ((y) + TREE_VIEW_HEADER_HEIGHT (tree_view))
+#define TREE_WINDOW_Y_TO_RBTREE_Y(tree_view,y) ((y) - TREE_VIEW_HEADER_HEIGHT (tree_view) + tree_view->priv->dy)
+#define RBTREE_Y_TO_TREE_WINDOW_Y(tree_view,y) ((y) + TREE_VIEW_HEADER_HEIGHT (tree_view) - tree_view->priv->dy)
+
+/* This is in Window coordinates */
+#define BACKGROUND_FIRST_PIXEL(tree_view,tree,node) (RBTREE_Y_TO_TREE_WINDOW_Y (tree_view, _gtk_rbtree_node_find_offset ((tree), (node))))
+#define CELL_FIRST_PIXEL(tree_view,tree,node,separator) (BACKGROUND_FIRST_PIXEL (tree_view,tree,node) + separator/2)
 
 
 typedef struct _GtkTreeViewChild GtkTreeViewChild;
@@ -862,7 +864,7 @@ gtk_tree_view_init (GtkTreeView *tree_view)
 
   /* We need some padding */
   tree_view->priv->tab_offset += EXPANDER_EXTRA_PADDING;
-
+  tree_view->priv->dy = 0;
   tree_view->priv->n_columns = 0;
   tree_view->priv->header_height = 1;
   tree_view->priv->x_drag = 0;
@@ -1195,7 +1197,7 @@ gtk_tree_view_realize (GtkWidget *widget)
   attributes.x = 0;
   attributes.y = 0;
   attributes.width = tree_view->priv->width;
-  attributes.height = tree_view->priv->height + TREE_VIEW_HEADER_HEIGHT (tree_view);
+  attributes.height = widget->allocation.height;
   attributes.event_mask = GDK_EXPOSURE_MASK |
     GDK_SCROLL_MASK |
     GDK_POINTER_MOTION_MASK |
@@ -1463,11 +1465,9 @@ gtk_tree_view_size_allocate (GtkWidget     *widget,
       gdk_window_resize (tree_view->priv->header_window,
                         MAX (tree_view->priv->width, allocation->width),
                         tree_view->priv->header_height);
-      if (tree_view->priv->width < allocation->width)
-         gdk_window_resize (tree_view->priv->bin_window,
-                            allocation->width,
-                            tree_view->priv->height + TREE_VIEW_HEADER_HEIGHT (tree_view));
-
+      gdk_window_resize (tree_view->priv->bin_window,
+                        tree_view->priv->width,
+                        allocation->height);
       _gtk_tree_view_update_col_width (tree_view);
     }
 
@@ -1481,7 +1481,7 @@ gtk_tree_view_size_allocate (GtkWidget     *widget,
 
   if (tree_view->priv->hadjustment->value + allocation->width > tree_view->priv->width)
     tree_view->priv->hadjustment->value = MAX (tree_view->priv->width - allocation->width, 0);
-  gtk_signal_emit_by_name (GTK_OBJECT (tree_view->priv->hadjustment), "changed");
+  gtk_adjustment_changed (tree_view->priv->hadjustment);
 
   tree_view->priv->vadjustment->page_size = allocation->height - TREE_VIEW_HEADER_HEIGHT (tree_view);
   tree_view->priv->vadjustment->step_increment = (tree_view->priv->vadjustment->page_size) / 10;
@@ -1492,8 +1492,7 @@ gtk_tree_view_size_allocate (GtkWidget     *widget,
   if (tree_view->priv->vadjustment->value + allocation->height > tree_view->priv->height)
     gtk_adjustment_set_value (tree_view->priv->vadjustment,
                              MAX (tree_view->priv->height - allocation->height, 0));
-
-  gtk_signal_emit_by_name (GTK_OBJECT (tree_view->priv->vadjustment), "changed");
+  gtk_adjustment_changed (tree_view->priv->vadjustment);
 
   if (tree_view->priv->scroll_to_path != NULL ||
       tree_view->priv->scroll_to_column != NULL)
@@ -1572,11 +1571,10 @@ gtk_tree_view_button_press (GtkWidget      *widget,
        }
 
       /* find the node that was clicked */
-      new_y = ((gint) event->y < TREE_VIEW_HEADER_HEIGHT (tree_view)) ? TREE_VIEW_HEADER_HEIGHT (tree_view) : (gint)event->y;
-      y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree,
-                                           TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, new_y),
-                                          &tree,
-                                          &node) + new_y - (gint)event->y;
+      new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->y);
+      if (new_y < 0)
+       new_y = 0;
+      y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node);
 
       if (node == NULL)
        /* We clicked in dead space */
@@ -1881,7 +1879,7 @@ static gboolean
 coords_are_over_arrow (GtkTreeView *tree_view,
                        GtkRBTree   *tree,
                        GtkRBNode   *node,
-                       /* these are in tree window coords */
+                       /* these are in window coords */
                        gint         x,
                        gint         y)
 {
@@ -1904,8 +1902,8 @@ coords_are_over_arrow (GtkTreeView *tree_view,
 
   return (x >= arrow.x &&
           x < (arrow.x + arrow.width) &&
-          y >= arrow.y &&
-          y < (arrow.y + arrow.height));
+         y >= arrow.y &&
+         y < (arrow.y + arrow.height));
 }
 
 static void
@@ -1945,12 +1943,14 @@ static void
 do_prelight (GtkTreeView *tree_view,
              GtkRBTree   *tree,
              GtkRBNode   *node,
-             /* these are in tree window coords */
+            /* these are in tree_window coords */
              gint         x,
              gint         y)
 {
   if (coords_are_over_arrow (tree_view, tree, node, x, y))
-    GTK_TREE_VIEW_SET_FLAG (tree_view, GTK_TREE_VIEW_ARROW_PRELIT);
+    {
+      GTK_TREE_VIEW_SET_FLAG (tree_view, GTK_TREE_VIEW_ARROW_PRELIT);
+    }
 
   tree_view->priv->prelight_node = node;
   tree_view->priv->prelight_tree = tree;
@@ -2355,14 +2355,12 @@ gtk_tree_view_motion_bin_window (GtkWidget      *widget,
   old_prelight_tree = tree_view->priv->prelight_tree;
   old_prelight_node = tree_view->priv->prelight_node;
   old_arrow_prelit = GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_ARROW_PRELIT);
-  do_unprelight (tree_view, event->x, event->y);
-
-  new_y = ((gint)event->y<TREE_VIEW_HEADER_HEIGHT (tree_view))?TREE_VIEW_HEADER_HEIGHT (tree_view):(gint)event->y;
 
-  _gtk_rbtree_find_offset (tree_view->priv->tree,
-                           TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, new_y),
-                           &tree,
-                           &node);
+  new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->y);
+  if (new_y < 0)
+    new_y = 0;
+  do_unprelight (tree_view, event->x, event->y);
+  _gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node);
 
   if (tree == NULL)
     return TRUE;
@@ -2373,29 +2371,34 @@ gtk_tree_view_motion_bin_window (GtkWidget      *widget,
     return TRUE;
 
 
-  do_prelight (tree_view, tree, node, event->x, new_y);
+  do_prelight (tree_view, tree, node, event->x, event->y);
 
   if (old_prelight_node != tree_view->priv->prelight_node)
     {
       if (old_prelight_node)
-        gtk_tree_view_queue_draw_node (tree_view,
+       {
+         gtk_tree_view_queue_draw_node (tree_view,
                                        old_prelight_tree,
                                        old_prelight_node,
                                        NULL);
-
+       }
       if (tree_view->priv->prelight_node)
-        gtk_tree_view_queue_draw_node (tree_view,
+       {
+         gtk_tree_view_queue_draw_node (tree_view,
                                        tree_view->priv->prelight_tree,
                                        tree_view->priv->prelight_node,
                                        NULL);
+       }
     }
   else if (old_arrow_prelit != GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_ARROW_PRELIT))
     {
       if (tree_view->priv->prelight_node)
-        gtk_tree_view_queue_draw_node (tree_view,
-                                       tree_view->priv->prelight_tree,
-                                       tree_view->priv->prelight_node,
-                                       NULL);
+       {
+         gtk_tree_view_queue_draw_node (tree_view,
+                                        tree_view->priv->prelight_tree,
+                                        tree_view->priv->prelight_node,
+                                        NULL);
+       }
     }
   return TRUE;
 }
@@ -2468,16 +2471,23 @@ gtk_tree_view_bin_expose (GtkWidget      *widget,
   if (tree_view->priv->tree == NULL)
     return TRUE;
 
+  /* clip event->area to the visible area */
+  if (event->area.y < TREE_VIEW_HEADER_HEIGHT (tree_view))
+    {
+      event->area.height -= (TREE_VIEW_HEADER_HEIGHT (tree_view) - event->area.y);
+      event->area.y = TREE_VIEW_HEADER_HEIGHT (tree_view);
+
+      if (event->area.height < 0)
+       return TRUE;
+    }
+
   gtk_tree_view_check_dirty_and_clean (GTK_TREE_VIEW (widget));
 
-  /* we want to account for a potential HEADER offset.  That is, if the header
-   * exists, we want to offset our event by its height to find the right node.
-   */
-  new_y = (event->area.y<TREE_VIEW_HEADER_HEIGHT (tree_view))?TREE_VIEW_HEADER_HEIGHT (tree_view):event->area.y;
-  y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree,
-                                       TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, new_y),
-                                      &tree,
-                                      &node) + new_y - event->area.y;
+  new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->area.y);
+  if (new_y < 0)
+    new_y = 0;
+  y_offset = -_gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node);
+
   if (node == NULL)
     return TRUE;
 
@@ -2535,6 +2545,7 @@ gtk_tree_view_bin_expose (GtkWidget      *widget,
 
       background_area.y = y_offset + event->area.y;
       background_area.height = max_height;
+
       flags = 0;
 
       if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_PRELIT))
@@ -2652,7 +2663,6 @@ gtk_tree_view_bin_expose (GtkWidget      *widget,
                * level of the tree we're dropping at.
                */
               highlight_x = cell_area.x;
-
              gtk_tree_view_column_cell_render (column,
                                                event->window,
                                                &background_area,
@@ -2876,17 +2886,15 @@ gtk_tree_view_enter_notify (GtkWidget        *widget,
     return TRUE;
 
   /* find the node internally */
-  new_y = ((gint)event->y<TREE_VIEW_HEADER_HEIGHT (tree_view))?TREE_VIEW_HEADER_HEIGHT (tree_view):(gint)event->y;
-
-  _gtk_rbtree_find_offset (tree_view->priv->tree,
-                           TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, new_y),
-                           &tree,
-                           &node);
+  new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->y);
+  if (new_y < 0)
+    new_y = 0;
+  _gtk_rbtree_find_offset (tree_view->priv->tree, new_y, &tree, &node);
 
   if (node == NULL)
     return FALSE;
 
-  do_prelight (tree_view, tree, node, event->x, new_y);
+  do_prelight (tree_view, tree, node, event->x, event->y);
 
   if (tree_view->priv->prelight_node)
     gtk_tree_view_queue_draw_node (tree_view,
@@ -2906,6 +2914,8 @@ gtk_tree_view_leave_notify (GtkWidget        *widget,
 
   g_return_val_if_fail (GTK_IS_TREE_VIEW (widget), FALSE);
 
+  if (event->mode == GDK_CROSSING_GRAB)
+    return TRUE;
   tree_view = GTK_TREE_VIEW (widget);
 
   if (tree_view->priv->prelight_node)
@@ -6282,12 +6292,16 @@ gtk_tree_view_adjustment_changed (GtkAdjustment *adjustment,
 {
   if (GTK_WIDGET_REALIZED (tree_view))
     {
+      gint dy;
       gdk_window_move (tree_view->priv->bin_window,
                       - tree_view->priv->hadjustment->value,
-                      - tree_view->priv->vadjustment->value);
+                      0);
       gdk_window_move (tree_view->priv->header_window,
                       - tree_view->priv->hadjustment->value,
                       0);
+      dy = tree_view->priv->dy - (int) tree_view->priv->vadjustment->value;
+      gdk_window_scroll (tree_view->priv->bin_window, 0, dy);
+      tree_view->priv->dy = (int) tree_view->priv->vadjustment->value;
 
       gdk_window_process_updates (tree_view->priv->bin_window, TRUE);
       gdk_window_process_updates (tree_view->priv->header_window, TRUE);
index 2b817661d0c29a9113b95a47e061ab64b8badba7..69bceb1be951af3820871b6cf4ac5fd1e965c3cd 100644 (file)
@@ -87,7 +87,6 @@ main (int argc, char *argv[])
   gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0);
 
   model = gtk_tree_store_new (NUM_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
-
   smodel = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (model));
   ssmodel = gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (smodel));